package com.example.demo.customer;


import com.example.demo.exception.ApiRequestException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.Collections;
import java.util.List;

@RequestMapping(path = "api/v2/customers")
@RestController
public class CustomerControllerV2 {

    private final CustomerService customerService;
    @Autowired

    public CustomerControllerV2(CustomerService customerService){
        this.customerService = customerService;
    }
    @GetMapping
    List<Customer> getCustomers() {
        return customerService.getCustomers();
    }
    @GetMapping(path="{customerId}")
    Customer getCustomer(@PathVariable("customerId")Long id){
        return customerService.getCustomer(id);

    }

@GetMapping(path = "{customerId}/exception")
Customer getCustomerException(@PathVariable("customerId")Long id)
{throw new ApiRequestException(
        "ApiRequestException for customer"+id
);

}
@PostMapping
    void createNewCustomer(@Valid @RequestBody Customer customer){
        System.out.println("POST 请求...");
        System.out.println(customer);
}

@PutMapping
void updateCustomer(@RequestBody Customer customer){
    System.out.println("UPDATE 请求...");
    System.out.println(customer);
    }

@DeleteMapping(path="{customerld}")
    void deleteCustomer(@PathVariable("customerId")Long id){
        System.out.println("DELETE 请求,删除 Customer,其ID为" +id);
}

}
